package com.dj.service;

import ca.uhn.fhir.rest.param.StringParam;
import org.hl7.fhir.dstu3.model.Bundle;
import org.hl7.fhir.dstu3.model.IdType;

import java.util.Date;
import java.util.List;

/**
 * 患者操作
 * @author cyf
 * @description
 * @create 2018-06-27 13:38
 **/
public interface JcbgService {

    /**
     * 保存
     * @param bundle
     * @return
     */
    IdType saveBundle(Bundle bundle);

    /**
     * 更新
     * @param id
     * @param version
     * @param bundle
     * @return
     */
    IdType updateBundle(String id, String version, Bundle bundle);


    /**
     * 根据id查询
     * @param id
     * @return
     */
    Bundle getById(String id);

    /**
     * 根据检查项目编码查询
     * @param code
     * @return
     */
    List<Bundle> getByItemCode(StringParam code);

    /**
     * 根据id 和版本查询
     * @param id
     * @param version
     * @return
     */
    Bundle getByIdAndVersion(String id, String version);

    /**
     * 删除
     * @param id
     * @return
     */
    Boolean deleteBundle(String id);

    /**
     * 获取当前记录的更新时间
     * @param id
     * @return
     */
    Date getLastUpdatTime(String id);

    /**
     * 获取历史版本的更新时间
     * @param id
     * @param version
     * @return
     */
    Date getHistoryLastUpdatTime(String id, String version);



    /**
     * 查询所有历史记录
     * @param id
     * @return
     */
    List<Bundle> getAllBundleById(String id);

    Boolean isExist(String patientId, String encounterId);
}
